iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
AI/ ML & Data

AI 到底是怎麼換臉的?系列 第 11

2024 Day 10:人臉檢測技術

  • 分享至 

  • xImage
  •  

在人機互動和計算機視覺(Computer Vision)領域中,人臉檢測是一項基礎且關鍵的技術。無論是人臉識別、表情分析,還是 AI 換臉技術,都離不開準確的人臉檢測。今天,我們將深入探討兩種經典的人臉檢測方法:Haar 特徵級聯分類器(Haar Feature-based Cascade Classifier)HOG 特徵與支持向量機(SVM, Support Vector Machine)的方法

這些技術在實際應用中廣泛使用,理解它們的原理和實現,將為我們後續的計算機視覺任務提供重要的技術支持。


今日學習目標

  • 深入理解 Haar 特徵級聯分類器的人臉檢測原理
  • 掌握 HOG 特徵與 SVM 方法的人臉檢測技術
  • 學習如何實現並應用這些人臉檢測方法,包括實踐中的細節
  • 了解這些方法的優缺點、適用場景,以及如何改進和優化

人臉檢測概述

人臉檢測的定義

  • 人臉檢測是指在數位圖像或視頻中自動識別並定位人臉的位置。它是後續人臉識別、表情分析、身份驗證等任務的前提。

人臉檢測的挑戰

  • 多樣性(Variability):人臉存在於不同的姿態(pose)、表情(expression)、光照(illumination)和遮擋(occlusion)情況下。
  • 尺度變化(Scale Variation):人臉在圖像中的大小可能不同,需要在不同尺度下進行檢測。
  • 實時性(Real-time Requirement):應用需要快速處理大量圖像,實現實時檢測。
  • 準確性(Accuracy):檢測結果需要高準確率,避免誤檢(false positives)和漏檢(false negatives)。

Haar特徵級聯分類器

Haar 特徵概述

Haar特徵(Haar Features)是由簡單矩形區域組成的特徵,用於捕捉圖像中的邊緣、線條和其他簡單形狀。

  • 特徵類型:
    • 邊緣特徵:由兩個矩形組成,一黑一白,用於檢測圖像中亮度的突變。
    • 線條特徵:由三個矩形組成,用於檢測線條結構。
    • 四矩形特徵:由四個矩形組成,用於捕捉角點等複雜特徵。
      https://ithelp.ithome.com.tw/upload/images/20240924/201695080OeWDxmOKi.png

圖 1:不同類型的 Haar 特徵示意圖

積分圖(Integral Image)

積分圖(Integral Image)是一種快速計算矩形區域內像素和的數據結構。

  • 定義:積分圖中每個位置 $(x, y)$ 的值為原圖像中從位置 $(0, 0)$ 到 $(x, y)$ 的所有像素值之和。
  • 公式:
    https://ithelp.ithome.com.tw/upload/images/20240924/20169508eFsrYyXkVL.png
  • 優點:使用積分圖,可以在恆定時間內計算任意矩形區域的像素和,無論矩形的大小。

AdaBoost 算法

AdaBoost 是一種迭代的機器學習算法,用於從大量的弱分類器中構建一個強分類器。

  • 弱分類器(Weak Classifier):基於單一 Haar 特徵的簡單分類器,分類精度略高於隨機猜測。
  • 強分類器(Strong Classifier):將多個弱分類器按加權組合,形成性能優異的分類器。
  • AdaBoost 訓練過程:
    1. 初始化權重:為每個訓練樣本賦予相同的初始權重。
    2. 選擇弱分類器:在當前權重分佈下,選擇能夠最小化分類誤差的弱分類器。
    3. 更新權重:增大被錯誤分類樣本的權重,減小被正確分類樣本的權重。
    4. 迭代:重複步驟 2 和 3,直到達到預定的弱分類器數量。

階層式分類器

為了提高檢測速度,**階層式分類器(Cascade Classifier)**將多個分類器按順序排列,形成一個逐級篩選的結構。

  • 概念:早期階段使用少量簡單特徵,快速排除大部分非人臉區域;後期階段使用更多複雜特徵,精細判斷。
  • 優點:大幅提高了檢測速度,因為大部分窗口在早期就被排除。
    https://ithelp.ithome.com.tw/upload/images/20240924/20169508B7hAsFJR7W.png
    圖2 階層式分類器的多級結構

在OpenCV中有許多預訓練模型等可以使用,但由於進度安排在這邊我們先不介紹及操作程式。


HOG 特徵與支持向量機(SVM)

HOG 特徵概述

方向梯度直方圖(Histogram of Oriented Gradients, HOG) 是一種描述局部形狀和外觀的特徵描述子。

  • 原理:利用圖像局部區域的梯度方向分佈,描述物體的外觀和形狀特徵。
  • 特點:
    • 對光照不敏感:因為使用了梯度資訊,對光照變化具有一定的魯棒性。
    • 豐富的形狀描述:能夠有效捕捉物體的邊緣和輪廓信息。

HOG 特徵的計算步驟

  1. 圖像預處理:
    • 灰度化:將彩色圖像轉換為灰度圖像。
    • Gamma 校正和色彩歸一化(可選):減少光照影響。
  2. 計算梯度:
    • 使用 Sobel 算子計算水平方向𝐺𝑥和垂直方向𝐺𝑦的梯度。
    • 梯度幅值:https://ithelp.ithome.com.tw/upload/images/20240924/20169508uUxa9VOq9v.png
    • 梯度方向:https://ithelp.ithome.com.tw/upload/images/20240924/201695080SG0jZqbHY.png
  3. 構建方向梯度直方圖:
    • 將圖像劃分為若干個小的 Cell(例如 8x8 像素)。
    • 在每個 Cell 中,根據每個像素的梯度方向,累計相應的梯度幅值到直方圖的對應桶(bin)中。
    • 典型的直方圖有 9 個方向(每 20 度一個 bin)。
  4. 塊歸一化:
    • 將多個Cell組成一個Block(例如2x2個Cell。
    • 對Block內的直方圖進行L2 歸一化,增強對光照和對比度變化的魯棒性。
  5. 組合特徵向量:
    • 將所有Block的特徵向量串聯成為最終的HOG特徵向量。

支持向量機(SVM)

支持向量機(Support Vector Machine, SVM) 是一種強大的監督式機器學習模型,用於分類和迴歸。

  • 基本思想:在特徵空間中尋找一個最優超平面,將不同類別的數據點分開,並最大化類別之間的間隔(Margin)。
  • 優點:
    • 高維度有效:在高維空間中仍然有效。
    • 防止過擬合:透過最大化間隔,具有良好的泛化能力。
  • 核函數(Kernel Function):
    • 線性核(Linear Kernel):適用於線性可分的數據。
    • 多項式核(Polynomial Kernel):適用於非線性數據。
    • 徑向基函數核(RBF Kernel):常用於非線性分類。

HOG + SVM 的人臉檢測流程

  1. 數據準備:
    • 收集大量的人臉和非人臉圖像,並進行標註。
  2. 特徵提取:
    • 對每張圖像計算 HOG 特徵向量。
  3. 模型訓練:
    • 使用 HOG 特徵和對應的標籤,訓練 SVM 分類器。
  4. 滑動窗口檢測:
    • 在待測圖像上,使用不同尺寸的滑動窗口,逐步掃描整個圖像。
    • 對每個窗口,計算 HOG 特徵,輸入 SVM 分類器進行判斷。
  5. 圖像金字塔(Image Pyramid):
    • 為了檢測不同尺度的人臉,將圖像進行多次縮放,形成圖像金字塔。
  6. 結果優化:
    • 非極大值抑制(Non-Maximum Suppression, NMS):消除重疊的檢測框,只保留置信度最高的框。

實踐應用與比較

選擇適合的方法

  • 實時性要求高:
    • 選擇 Haar 特徵級聯分類器。
    • 適用於計算資源有限、需要快速檢測的場景,如手機應用、嵌入式設備。
  • 檢測精度要求高:
    • 選擇 HOG + SVM 方法。
    • 適用於對檢測準確性要求高的場景,如安防監控、人臉識別系統。

結合深度學習的方法

  • 深度學習的人臉檢測器:
    • MTCNN(Multi-task Cascaded Convolutional Networks):
      • 結合人臉檢測和關鍵點定位,實現高精度檢測。
    • RetinaFace:
      • 基於 ResNet 的單階段檢測器,具有優秀的檢測性能。
    • 優勢:
      • 高精度:能夠處理姿態、表情、光照和遮擋等挑戰。
      • 端到端訓練:直接從圖像輸入到檢測結果輸出。
  • 與傳統方法的比較:
    • 優勢:
      • 適應性強:深度學習模型能夠學習更豐富的特徵。
      • 可擴展性:可以在大型數據集上進行訓練,提升性能。
    • 劣勢:
      • 需要大量數據:訓練深度模型需要大量標註數據。
      • 計算資源要求高:模型較大,需要 GPU 等高性能硬件支持。

綜合應用

  • 多方法融合:
    • 結合 Haar 特徵級聯分類器和深度學習模型,在不同階段進行檢測,提高效率和精度。
  • 預處理與後處理:
    • 預處理:進行圖像增強、降噪,提升檢測效果。
    • 後處理:進行人臉對齊、關鍵點定位,為後續任務提供高質量輸入。
  • 實際案例:
    • 在一個人臉識別系統中,首先使用 Haar 分類器快速定位人臉區域,然後使用深度學習模型精細檢測,最後進行人臉識別。

本日總結
今天我們深入學習了兩種經典的人臉檢測方法:Haar 特徵級聯分類器和 HOG 特徵與 SVM 方法。我們從理論基礎、算法原理、實現細節、優缺點等多個角度對它們進行了詳細的探討。

  • Haar 特徵級聯分類器:
    • 適合實時應用,速度快,但對姿態和光照變化敏感。
    • 使用積分圖和級聯結構,提高了計算效率。
  • HOG 特徵與 SVM 方法:
    • 檢測精度高,對光照和姿態變化具有穩健性(Robustness)。
    • 計算量較大,速度相對較慢。

我們還討論了如何根據具體需求選擇合適的方法,以及與深度學習方法的結合。在實際應用中,沒有單一的方法能夠滿足所有需求,結合多種技術手段,並進行合理的優化,才能實現最佳的檢測效果。


參考資源:


上一篇
2024 Day 9 番外篇:AI換臉技術的實現與項目實踐
下一篇
2024 Day 11:人臉關鍵點檢測與對齊
系列文
AI 到底是怎麼換臉的?31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言